//# sourceURL=test.js
var obj;
$(function(){

    obj = {
        "layui" : layui
    };

    // 调用组件渲染页面
    pageTools(obj);
    
    $("#Return ,#term ,#resultMsg").height($(document).height()-110)
    $("#resultMsg").height($(document).height()-160)
});

/**
 * 有参数接口测试
 */
function Interface()
{
    var methodPath = $("#methodPath").val();
    var reqData = $("#reqData").val();

    if(!reqData)
    {
        alert("参数不能为空");
        return;
    }
    var data = JSON.parse(reqData.trim());
    $._Ajax.jPost(methodPath.trim(), data, function(res){
        $("#resultMsg").text("");
        try{
            var str = JSON.stringify(res);
            $("#resultMsg").append($("<pre>" + formatJson(str) + "</pre>"));
        }catch(e){
            $("#resultMsg").append($("<pre>接口访问异常</pre>"));
        }

        // 调用组件渲染页面
        pageTools(obj);
    }, function(res){
        $("#resultMsg").text("");
        $("#resultMsg").append(JSON.stringify(res));
        // 调用组件渲染页面
        pageTools(obj);
    }, false);
}

function redisKeys()
{
	$("#methodPath").text("/redis/Keys.do")
    var methodPath = '/redis/Keys.do';
	 $._Ajax.noParameterJPost(methodPath.trim(), function(res){
	        $("#resultMsg").text("");
	        try{
	            var str = JSON.stringify(res);
	            $("#resultMsg").append($("<pre>" + formatJson(str) + "</pre>"));
	        }catch(e){
	            $("#resultMsg").append($("<pre>接口访问异常</pre>"));
	        }
	        // 调用组件渲染页面
	        pageTools(obj);
	    }, function(res){
	        $("#resultMsg").text("");
	        $("#resultMsg").append(JSON.stringify(res));
	        // 调用组件渲染页面
	        pageTools(obj);
	    }, false);
}

/**
 * 无参数接口测试
 */
function noParamInterface()
{
    var methodPath = $("#methodPath").val();
    $._Ajax.noParameterJPost(methodPath.trim(), function(res){
        $("#resultMsg").text("");
        try{
            var str = JSON.stringify(res);
            $("#resultMsg").append($("<pre>" + formatJson(str) + "</pre>"));
        }catch(e){
            $("#resultMsg").append($("<pre>接口访问异常</pre>"));
        }
        // 调用组件渲染页面
        pageTools(obj);
    }, function(res){
        $("#resultMsg").text("");
        $("#resultMsg").append(JSON.stringify(res));
        // 调用组件渲染页面
        pageTools(obj);
    }, false);
}

function download()
{
    var methodPath = $("#methodPath").val();
    // 调用上传文件接口
    $._Ajax.noParameterJPost(methodPath, function(res){
        $("#resultMsg").text("");
        $("#resultMsg").append($("<a id='downLoadTest' href='"+ res.url +"' download=''>测试下载</a>"));
        // 调用组件渲染页面
        pageTools(obj);
    }, function(res){}, false);

}

function cat()
{

}

/**
 * 上传文件测试
 * @constructor
 */
function Upload()
{
    var methodPath = $("#methodPath").val();
    var formData=new FormData();
    formData.append("myFile",$("#myFile")[0].files[0]);

    // 附加参数(接口规定此项必传或不必传)
    var reqData = $("#reqData").val();
    if(reqData)
    {
        formData.append("request", reqData);
    }

    if(!formData)
    {
        alert("未选择上传文件");
        return;
    }

    // 调用上传文件接口
    $._Ajax.upload(methodPath, formData, function(res){
        $("#resultMsg").text("");
        try{
            var str = JSON.stringify(res);
            $("#resultMsg").append($("<pre>" + formatJson(str) + "</pre>"));
        }catch(e){
            $("#resultMsg").append($("<pre>接口访问异常</pre>"));
        }

        // 调用组件渲染页面
        pageTools(obj);
    }, function(res){})
}

/**
 * 格式化参数
 * @param json
 * @param options
 * @returns {string}
 */
function formatJson(json, options) {
    var reg = null,
        formatted = '',
        pad = 0,
        // one can also use '\t' or a different number of spaces
        PADDING = '    ';
    // optional settings
    options = options || {};
    // remove newline where '{' or '[' follows ':'
    options.newlineAfterColonIfBeforeBraceOrBracket = (options.newlineAfterColonIfBeforeBraceOrBracket === true) ? true : false;
    // use a space after a colon
    options.spaceAfterColon = (options.spaceAfterColon === false) ? false : true;

    // begin formatting...

    // make sure we start with the JSON as a string
    if (typeof json !== 'string') {
        json = JSON.stringify(json);
    }
    // parse and stringify in order to remove extra whitespace
    json = JSON.parse(json);
    json = JSON.stringify(json);

    // add newline before and after curly braces
    reg = /([\{\}])/g;
    json = json.replace(reg, '\r\n$1\r\n');

    // add newline before and after square brackets
    reg = /([\[\]])/g;
    json = json.replace(reg, '\r\n$1\r\n');

    // add newline after comma
    reg = /(\,)/g;
    json = json.replace(reg, '$1\r\n');

    // remove multiple newlines
    reg = /(\r\n\r\n)/g;
    json = json.replace(reg, '\r\n');

    // remove newlines before commas
    reg = /\r\n\,/g;
    json = json.replace(reg, ',');

    // optional formatting...
    if (!options.newlineAfterColonIfBeforeBraceOrBracket) {
        reg = /\:\r\n\{/g;
        json = json.replace(reg, ':{');
        reg = /\:\r\n\[/g;
        json = json.replace(reg, ':[');
    }
    if (options.spaceAfterColon) {
        reg = /\:/g;
        json = json.replace(reg, ': ');
    }

    $.each(json.split('\r\n'), function(index, node) {
        var i = 0,
            indent = 0,
            padding = '';

        if (node.match(/\{$/) || node.match(/\[$/)) {
            indent = 1;
        } else if (node.match(/\}/) || node.match(/\]/)) {
            if (pad !== 0) {
                pad -= 1;
            }
        } else {
            indent = 0;
        }

        for (i = 0; i < pad; i++) {
            padding += PADDING;
        }

        formatted += padding + node + '\r\n';
        pad += indent;
    });

    return formatted;
}

/**
 * 清空返回值
 */
function clean()
{
    $("#resultMsg").text("");
}

function getIp()
{
    var loaclIp;
    getUserIP(function(ip){
        loaclIp = ip;
        $("#resultMsg").text(ip);
    });
}